A VBA schedule engine for a leading power transmission company's line projects. A field delay in foundation, erection or stringing now ripples through every downstream stretch in seconds, and planners see the result on a Gantt chart inside Excel.
Figures indicative; validated metrics available on request.
The company planned its transmission lines in Microsoft Project and TILOS. Every change from the field had to reach the schedule at one of three stages (foundation, erection or stringing) and then flow on to every stretch that depended on it.
The baseline lived in Microsoft Project and the time–location view in TILOS. Field teams reported in neither, so every update was re-keyed twice.
Erection waits for foundations to cure, and stringing waits for the whole stretch to be erected. One late foundation pushes all three stages downstream.
Every stretch had a start, a duration, a shift and a factor at each stage. With 14 stretches in a package that is 168 levers, all linked.
Monsoon, right-of-way and crossing approvals changed the plan every week. A manual re-plan took about a day, so the schedule was always behind the site.
Built with the company's planning team, keeping Microsoft Project and TILOS as inputs and putting the daily re-planning where the planners already worked.
Select a step to see what happened.
We sat with planners and site engineers to trace how a field change became a schedule change.
Deliverable: Lever map and dependency rules.
A stretch-wise base sheet per stage, filled from the Microsoft Project baseline.
Deliverable: Base sheet layout and formula design.
VBA does the iterations; planners only touch the form.
Deliverable: Macro-enabled workbook with two UserForms.
Site updates now reach the schedule on the same day.
Deliverable: Daily update routine and review pack.
The workbook became a template for new packages.
Deliverable: Package template and setup guide.
VBA performs the iterations, the full tower schedule is visible in a UserForm, and every change is written back to the spreadsheet. Below are the original screens, followed by a working replica you can try.
Shown as delivered. Click any screen to enlarge it.
Base sheet. Tower type, span length and stretch name, then plan and actual/forecast dates for each stage. The coloured boxes show how each date is recalculated.
USER CONTROL (left): Pick Base Data, List Stretches, choose Foundation, Erection or Stringing, then Add/Subtract Days or Shift Days. Refresh From Base resets the plan; Remove Calculations clears the working columns.
Stretch Details (right): pick a stretch such as 7/10-7/11, read its start (13-Apr-2018) and end (23-May-2018), adjust it, and see the Gantt chart from Apr-18 to Jan-19.
A working replica of the Stretch Details form on a sample 14-stretch package. Pick a stretch and stage, add or shift days, then press SUBMIT. Or switch on a field event. The VBA-style iterations run until every downstream date settles.
Sample package for illustration: stretch names follow the original form; durations, gang counts and lags are indicative. Rules: erection starts once 55% of foundations are done plus 7 days of curing; stringing starts 3 days after a stretch is fully erected; each gang works its stretches in order.
The same columns as the base sheet. Cells flash when an iteration changes them; yellow cells are manual inputs. Click a row to load that stretch into the form.
Every tower and span of the sample package, placed along the route with its river, road and rail crossings. Press play to watch foundations, towers and conductors appear on their forecast dates. Changes made in the console show up here too. Drag to orbit, scroll to zoom, click a tower for its dates.
Spans compressed and towers exaggerated in height so the whole package fits on screen. Dates follow the same schedule as the console and table above.
The engine removed the manual cascade, so planners re-forecast every day. The finish-date forecast stopped jumping late in the project.
Where the time went, step by step
A milestone trend chart: flat is good, late jumps are bad
Figures indicative; validated metrics available on request.
Once start, duration, shift and factor are inputs, every date becomes a result. Planners change one lever instead of fifty cells.
Dependencies between stages and gangs are rules, not memory. The engine runs them until the plan settles, every time.
A UserForm on the sheet they already trust was adopted in weeks. New software would have taken a project cycle.